package com.example.csmallpassport.service;

import com.example.csmallpassport.pojo.dto.AdminAddNewDTO;
import com.example.csmallpassport.pojo.dto.AdminLoginDTO;
import com.example.csmallpassport.pojo.dto.AdminUpdateDTO;
import com.example.csmallpassport.pojo.entity.Admin;
import com.example.csmallpassport.pojo.vo.AdminListItemVO;
import com.example.csmallpassport.pojo.vo.AdminStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 *
 */
@Transactional //实现事务管理
public interface AdminService {

    /**
     * 管理员登录
     * @param adminLoginDTO
     */
    String login(AdminLoginDTO adminLoginDTO);

    /**
     * 实现管理员添加
     * @param adminAddNewDTO
     */
    void addNew(AdminAddNewDTO adminAddNewDTO);

    /**
     * 实现根据id来修改数据
     * @param id
     * @param adminUpdateDTO
     */
    void update(Long id,AdminUpdateDTO adminUpdateDTO);

    /**
     * 根据id删除对应的管理员数据
     * @param id
     */
    void delete(Long id);

    /**
     * 根据id启用某个管理员
     * @param id
     */
    void enable(Long id);

    /**
     * 根据id禁用某个管理员
     * @param id
     */
    void disable(Long id);

    /**
     * 根据id查询管理员详细信息
     * @param id
     * @return
     */
    AdminStandardVO getStandardById(Long id);

    /**
     * 查询管理员列表
     * @return
     */
    List<AdminListItemVO> list();

}
